
const promiseAll = (promises)=>{
    return new Promise((resolve,reject)=>{
    if(!Array.isArray(promises)){
        return new TypeError('params must be array')
    }
    let res = [],count = 0,len=promises.length
        promises.map((promise,index)=>{
            promise.then(data=>{
                if(data){
                    res[index]=data
                    count++
                }
                // 在这里面判断，返回，不能放在最外面
                if (count === len) {
                    resolve(res);
                }
            },err=>{
              reject(err)
            })
        })

    })
}

const p1  = ()=>{
    return new Promise((resolve,reject)=>{
        resolve(10)
    })
}
const p2  =  ()=>{
    return new Promise((resolve,reject)=>{
        resolve(20)
    })
}

// const p3  =  ()=>{
//     return new Promise((resolve,reject)=>{
//         reject('error')
//     })
// }

promiseAll([p1(), p2()]).then(
  (data) => {
    console.log(data);
  },
  (err) => {
    console.log(err);
  }
);

// Promise.all([p1(),p2(),p3()]).then(data=>{
//     console.log(data)
// },err=>{
//     console.log(err)
// })
